import Vue from 'vue'
import VueRouter from 'vue-router'

import MyLogin from '@/components/MyLogin'

Vue.use(VueRouter)

const routes = [
  { path: '/', redirect: '/login' },
  { path: '/login', component: MyLogin },
  { path: '/home', component: () => import('@/components/MyHome'), children: [
    { path: 'goods', component: () => import('@/components/menus/MyGoods.vue') },
    { path: 'orders', component: () => import('@/components/menus/MyOrders.vue') },
    { path: 'rights', component: () => import('@/components/menus/MyRights.vue') },
    { path: 'settings', component: () => import('@/components/menus/MySettings.vue') },
    { path: 'users', component: () => import('@/components/menus/MyUsers.vue') },
    { path: 'detail/:id', component: () => import('@/components/user/MyUserDetail.vue') }
  ] },
  // 处理不存在的地址
  { path: '*', component: () => import('@/components/NotFound.vue') }
]

const router = new VueRouter({
  routes,
  mode: 'history'
})

// 添加全局前置导航守卫
router.beforeEach((to, from, next) => {
  // to                //到哪里，表示将要跳转到到达的路由信息【to.path表示即将跳转的那个路由地址】
  // from              //从哪里来，表示上一个路由信息
  // next()            //是一个函数表示是否通过
  // -next()           //表示不允许访问，通过，放行
  // -next(false)      //表示不允许访问，直接卡到这里
  // -next(‘/login’)   //表示不允许访问，并直接跳转到 /login
  if (to.path === '/login') {
    next()  //无条件放行
  } else {
    //访问其他页面还需要再次判断一下，是否登陆过（登陆后，本地存储有 token）
    if (localStorage.getItem('token')) {
      next()  //本地存储有 token说明登陆过，直接放行
    } else{
      next('/login') //说明没有登陆过，还想访问首页。。。不行
    }
  }


})

export default router
